package micropascalcomp;

/**
 * Enum Class for giving all token names an enumerated value.
 * @author Jason Welch, Codi Gann, Jamal Martin
 */
public enum Token {
    // Reserved Words      #          LEXEME      //
    MP_AND,             // 0 //     // "and"      //
    MP_BEGIN,           // 1 //     // "begin"    //
    MP_DIV,             // 2 //     // "div"      //
    MP_DO,              // 3 //     // "do"       //
    MP_DOWNTO,          // 4 //     // "downto"   //
    MP_ELSE,            // 5 //     // "else"     //
    MP_END,             // 6 //     // "end"      //
    MP_FIXED,           // 7 //     // "fixed"    //
    MP_FLOAT,           // 8 //     // "float"    //
    MP_FOR,             // 9 //     // "for"      //
    MP_FUNCTION,        // 10 //    // "function" //
    MP_IF,              // 11 //    // "if"       //
    MP_INTEGER,         // 12 //    // "integer"  //
    MP_MOD,             // 13 //    // "mod"      //
    MP_NOT,             // 14 //    // "not"      //
    MP_OR,              // 15 //    // "or"       //
    MP_PROCEDURE,       // 16 //    // "procedure"//
    MP_PROGRAM,         // 17 //    // "program"  //
    MP_READ,            // 18 //    // "read"     //
    MP_REPEAT,          // 19 //    // "repeat"   //
    MP_THEN,            // 20 //    // "then"     //
    MP_TO,              // 21 //    // "to"       //
    MP_UNTIL,           // 22 //    // "until"    //
    MP_VAR,             // 23 //    // "var"      //
    MP_WHILE,           // 24 //    // "while"    //
    MP_WRITE,           // 25 //    // "write"    //
    // ID's and Literals //
    MP_IDENTIFIER,      // 26 //
    MP_INTEGER_LIT,     // 27 //
    MP_FIXED_LIT,       // 28 //
    MP_FLOAT_LIT,       // 29 //
    MP_STRING_LIT,      // 30 //
    // Symbols //
    MP_PERDIOD,         // 31 //    // "."        //
    MP_COMMA,           // 32 //    // ","        //
    MP_SCOLON,          // 33 //    // ";"        //
    MP_LPAREN,          // 34 //    // "("        //
    MP_RPAREN,          // 35 //    // ")"        //
    MP_EQUAL,           // 36 //    // "="        //
    MP_GTHAN,           // 37 //    // ">"        //
    MP_GEQUAL,          // 38 //    // ">="       //
    MP_LTHAN,           // 39 //    // "<"        //
    MP_LEQUAL,          // 40 //    // "<="       //
    MP_NEQUAL,          // 41 //    // "<>"       //
    MP_ASSIGN,          // 42 //    // ":="       //
    MP_PLUS,            // 43 //    // "+"        //
    MP_MINUS,           // 44 //    // "-"        //
    MP_TIMES,           // 45 //    // "*"        //
    MP_COLON,           // 46 //    // ":"        //
    MP_EOF,             // 47 //    
    // Errors //
    MP_RUN_COMMENT,     // 48 //
    MP_RUN_STRING,      // 49 //
    MP_ERROR,           // 50 //
    // Comment //
    MP_COMMENT          // 51 //
}
